package com.alex.enumfunction.tradition;

public class EnumTest {
    public static void main(String[] args) {
        // 1. 基础枚举的使用
        OrderStatusAlex008 status1 = OrderStatusAlex008.PAID;
        System.out.println("基础枚举名称: " + status1.name());         // 输出: PAID
        System.out.println("基础枚举序号: " + status1.ordinal());     // 输出: 1

        // 2. 带属性枚举的使用
        OrderStatusDetailAlex008 status2 = OrderStatusDetailAlex008.PAID;
        System.out.println("状态码: " + status2.getCode());          // 输出: 1
        System.out.println("状态描述: " + status2.getMessage());     // 输出: 已支付

        // 3. 便利方法的使用
        OrderStatusDetailAlex008 status3 = OrderStatusDetailAlex008.fromCode(2);
        System.out.println("根据状态码获取状态: " + status3.getMessage());  // 输出: 已发货

        // 4. 枚举的常用方法
        // 获取所有枚举值
        System.out.println("\n所有订单状态:");
        for (OrderStatusDetailAlex008 status : OrderStatusDetailAlex008.values()) {
            System.out.printf("码值:%d, 描述:%s%n", status.getCode(), status.getMessage());
        }

        // 字符串转枚举
        OrderStatusDetailAlex008 status4 = OrderStatusDetailAlex008.valueOf("PAID");
        System.out.println("\n字符串转枚举: " + status4.getMessage());  // 输出: 已支付
    }
}